The GPRS (General Packet Radio Service) offers a high-speed, packet-switched, mobile data communication network, where the subscribers can connect themselves to an external network from a mobile terminal. The subscribers need an IP-address to route packets to and from the external network. They can specify this address themselves, called static address, or receive an address from the external network or the GPRS-system. The last case is then called a dynamic address allocation.
The GPRS system has an internal pool of IP-addresses to be used by the subscribers to get a dynamic IP-address. This pool is located on a global processor in the GPRS-system and is distributing addresses to all the other processors. The global processor will also keep track of which addresses are used and which are available for the subscribers.
The Problem Area
The global processor has to keep track of which addresses that are in use, so that it will not give out the same address to two subscribers. The operator of the GPRS-system will only give in one IP-pool per external network, so the processor have to keep track of the dynamic addresses for the whole GPRS-network. This means that it will be generated a lot of unwanted traffic towards the global processor which holds the IP-pool. Each subscriber, possibly connected to another processor, have to obtain its address and release it through the global processor.
Possible Solutions
One way to solve the problem would have been to configure one IP-pool per processor for each external network. Two arguments show that this is a bad solution. The number of processors in the system should be highly dynamic, and there should be no need for configuration of the processor before start. This means that each processor could not have its own IP-pool. Also, the load could be unevenly distributed among the processors, with the result that one processor has run out of addresses, while the other processors have many unused addresses left. The address-resources would in this case have a low degree of utilization.
The other way to solve the problem is to allow for all the traffic generated by having only one global address-pool. The advantage with this solution is that all the addresses would be in use before one processor would that report that no addresses were available.
Problems with These Solutions
The above-mentioned solutions will either require a configuration of the processors before start, or result in unwanted traffic towards the global processors in the GPRS-system.
Other Prior Art
U.S. Pat. No. 5,093,912 describes a method for expanding and contracting a resource pool, mainly with respect to system storage. The patent has no global resource holder to keep track of the overall resource management, but uses an operating system to handle the deletion of a pool of resources. Moreover, the expansion of the pool by acquiring further resources also involves an external system, such as an operating system.
Allocation of an IP address for an end user in a computer network could not directly be compared to allocation of system storage in a computer. The IP addresses will most likely be kept for several hours, possibly weeks in a GPRS system. Typical memory allocations in a computer system could last for seconds or minutes. The address should also be kept by the subscriber, even though one of the local processors in the GPRS node restarts. This is a very unlikely behaviour of a general computer resource. Thereby, a comparison of an IP-address pool and a typical computer resource pool is not absolutely adequate.
An article from CISCO: New Features in Release 12.1(1)T, http://www.cisco.com . . . are/ios121/121newft/121t/121t1/gprsl.htm, Aug. 26, 1999, page 14, describes how one can use one DHCP server for all the external networks, instead of letting each external network connected to the GGSN include its own DHCP server. However, no distribution of addresses is done between the different DHCP servers, i.e. the global DHCP server and the local DHCP servers.